﻿@model IEnumerable<Controller2.Models.ViewModels.SaidaViewModel>
@{
    ViewBag.Title = "Consulta de Saida";
}
<style type="text/css">
    #ComboFiltro
    {
        width: 150px;
    }
    .totais
    {
        font-weight: bold;
        float: right;
        vertical-align: bottom;
        line-height: 30px;
        font-size: 15px;
    }
    input[type=text]#vlTotalPrevisto, input[type=text]#vlTotalPago
    {
        background-color: White;
        width: 150px;
        border: none;
        font-weight: bold;
        text-align: left;
        padding: 0;
        font-size: 15px;
    }
</style>
@if (false)
{
    <script src="../../Scripts/jquery.js" type="text/javascript"></script>
    <script src="../../Scripts/controller.js" type="text/javascript"></script>
    <script src="../../Scripts/jquery-vsdoc.js" type="text/javascript"></script>
    <script src="../../Scripts/jquery.validate-vsdoc.js" type="text/javascript"></script>
    <script src="../../Scripts/jquery-ui.js" type="text/javascript"></script>
    <script src="../../Scripts/numbers.js" type="text/javascript"></script>
}
<script src="@Url.Content("~/Scripts/numbers.js")" type="text/javascript"></script>
@MvcHtmlString.Create(@ViewBag.Pesquisa)
@(Html.Telerik().Grid<Controller2.Models.ViewModels.SaidaViewModel>()
    .Name("grdConsulta")
    .Selectable()
        .ClientEvents(events => events.OnRowSelected("onRowSelected")
                                      .OnLoad("Grid_onLoadVerify")
                                      .OnDataBound("Grid_onDataBound"))
    .Columns(c =>
    {
        c.Bound(g => g.ID).Title("Código").Width(60).HtmlAttributes(new { style = "text-align: center;" });
        c.Bound(g => g.Fornecedor);
        c.Bound(g => g.Midia).Title("Midia").Width(250);
        c.Bound(g => g.DataPrevista).Title("Data Prevista").Format("{0:dd/MM/yyyy}").Width(90).HtmlAttributes(new { style = "text-align: center;" });
        c.Bound(g => g.ValorPrevisto).Title("Valor Previsto").Width(100).HtmlAttributes(new { style = "text-align: right;" });
        c.Bound(g => g.DataPagamento).Title("Data Pgto").Format("{0:dd/MM/yyyy}").Width(90).HtmlAttributes(new { style = "text-align: center;" });
        c.Bound(g => g.ValorPagamento).Title("Valor Pgto").Width(100).HtmlAttributes(new { style = "text-align: right;" });
    })
            .TableHtmlAttributes(new { style = "font-size: 8pt;" })
            .DataBinding(d => d
                .Ajax().Select("AjaxGrid", "Saida")
            )
            .PrefixUrlParameters(false)
            .Pageable(p => p.Enabled(true)
                .PageSize(40)
                    .Position(GridPagerPosition.Both)
                .Style(GridPagerStyles.NextPreviousAndNumeric | GridPagerStyles.PageInput)
            )
            .Sortable()
            .Scrollable(s => s.Height(340))
            .Filterable(f => f.Enabled(false))
            .Groupable(g => g.Enabled(false))
        )
@if ((Boolean)ViewBag.IsInRole)
{
    <div id="botoesConsulta">
        <input type="button" id="Incluir" value="Novo" />
        <input type="button" id="Alterar" value="Alterar" />
        <input type="button" id="Excluir" value="Excluir" />
        <div class="totais">
            Total Previsto: R$
            <input type="text" tipo="decimal" tamanho="2" id="vlTotalPrevisto" readonly="readonly"
                value="0,00" />
            Total Pago: R$
            <input type="text" tipo="decimal" tamanho="2" id="vlTotalPago" readonly="readonly"
                value="0,00" />
        </div>
    </div>
}
else
{
    <div id="botoesConsulta">
        <div class="totais">
            Total Previsto: R$
            <input type="text" tipo="decimal" tamanho="2" id="vlTotalPrevisto" readonly="readonly"
                value="0,00" />
            Total Pago: R$
            <input type="text" tipo="decimal" tamanho="2" id="vlTotalPago" readonly="readonly"
                value="0,00" />
        </div>
    </div>
}
<div id="confirmarExclusao" style="display: none;">
    <p>
        Confirmando esta ação, você apagará este registro do banco de dados, não sendo mais
        possível recuperá-lo.
        <br />
        <br />
        Deseja realmente apagar este registro?</p>
</div>
<div id="alerta" style="display: none;">
    Por favor, selecione um regristro!
</div>
<div id="winForm" style="display: none; overflow: hidden;">
</div>
<div id="alertaErro" style="display: none; overflow: hidden;">
</div>
<script type="text/javascript">
    $(function () {
        $('#txtPesquisa').autocomplete({ source: function (request, response) { $.post('@Url.Action("AutoComplete", "Saida")', { filtro: $('#ComboFiltro').val(), termoPesquisa: request.term }, function (data) { return response(data); }, 'json'); }, delay: 100, minLength: 1 });
    });
    $('#btnPesquisa').click(function (e) {
        showLoading(); e.preventDefault(); pesquisa();
    });
    function pesquisa() {
        var texto = $('#txtPesquisa').val(); var filtro = $('#ComboFiltro').val(); var url = '@Url.Action("Pesquisa", "Saida")'; $.post(url, { texto: texto, filtro: filtro }, function (result) { gridRebind('grdConsulta'); hideLoading(); });
    }
    $('#Incluir').click(function () {
        showLoading(); var url = '@Url.Action("Cadastro")/0'; $('#winForm').empty().load(url); formDialog('winForm', 'Inclusão de Saida', 430, 650); return false;
    });
    $('#Alterar').click(function () {
        showLoading(); if (id === undefined || id === '') { alertDialog('alerta', '', 120, 250); hideLoading(); return false; } else { alterar(id); id = undefined; }
    });
    function alterar(id) {
        var url = '@Url.Action("Cadastro")/' + id; $('#winForm').empty().load(url); formDialog('winForm', 'Alteração de Saida', 430, 650); return false;
    }
    $('#Excluir').click(function () {
        if (id === undefined || id === '') { alertDialog('alerta', '', 120, 250) } else { confirmDialog('confirmarExclusao', 'excluir', '', '', ''); }
    });
    function excluir() {
        showLoading(); var url = '@Url.Action("Excluir", "Saida")'; $.post(url, { id: id }, function (data) { if (data.salvo) { gridRebind('grdConsulta'); } hideLoading(); });
    }
    function closeWindow() {
        $('#winForm').dialog('close'); gridRebind('grdConsulta'); $("#winForm:ui-dialog").dialog("destroy");
    }
    function Grid_onLoadVerify(e) {
        var isInRole = '@ViewBag.IsInRole'; if (isInRole == 'True') { Grid_onLoad(e, this); }
    }
    function Grid_onDataBound() {
        var grid = $(this).data('tGrid');
        if (grid.data.length > 0) {
            var length = grid.data.length;
            var totalPrevisto = 0;
            var totalPago = 0;
            for (var i = 0; i < length; i++) {
                $('#vlTotalPrevisto').value(grid.data[i].ValorPrevisto, true, 2);
                $('#vlTotalPago').value(grid.data[i].ValorPagamento, true, 2);
                totalPrevisto = totalPrevisto + $('#vlTotalPrevisto').valueFloat();
                totalPago = totalPago + $('#vlTotalPago').valueFloat();
            }
            $('#vlTotalPrevisto').value(totalPrevisto);
            $('#vlTotalPago').value(totalPago);
        }
    }
</script>
